#include <stdio.h>
#include <stdlib.h>

#define MAX_N   10000

static int cables[MAX_N];   /* length (in centimeters) of each cable */
static int N;               /* number of cables */
static int K;               /* requested number of pieces */

static int length_comparer(const int *a, const int *b)
{
    return *b - *a;
}

/* Returns true if we can produce at least K pieces of length L each. */
static int is_feasible(int L)
{
    int i, count = 0;
    for (i = 0; i < N && cables[i] >= L; i++)
    {
        if ((count += cables[i] / L) >= K)
            return 1;
    }
    return 0;
}

/* Returns the maximum length that can produce at least K pieces. */
static int solve()
{
    int upper, lower;

    upper = cables[0];  /* max piece length */
    lower = 0;          /* min piece length */

    /* Find the longest length that can produce at least K pieces. */
    while (lower < upper)
    {
        int L = (lower + upper + 1) / 2;
        if (is_feasible(L))
            lower = L;
        else
            upper = L - 1;
    }
    return lower;
}

int main()
{
    int i, ret;

    scanf("%d %d", &N, &K);
    for (i = 0; i < N; i++)
    {
        int a, b;
        scanf("%d.%d", &a, &b);
        cables[i] = a * 100 + b;
    }
    
    /* Sort the cables in descending length for faster comparison. */
    qsort(cables, N, sizeof(cables[0]), length_comparer);

    ret = solve();
    printf("%d.%02d\n", ret / 100, ret % 100);
    return 0;
}

